import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.*;
import java.util.Scanner;
 
 
public class Main {
    static int num;        
    static Scanner sc = new Scanner(System.in);
    static Producto[] listProd= new Producto[100];
 
    static Producto p = new Producto();
    static int nProd = 0;
 
        public static void main(String[] args) throws IOException {
           funcionSwitch();
        }    
        public static void funcionMenu(){
            do{ 
                System.out.println("Teclee la opción que desee." + "\n1-Introducir nuevo producto.\n2-Visualizar productos." + "\n3-Guardar en archivo de texto.\n4-Leer archivo de texto con productos guardados.\n5-Salir.");
                num= sc.nextInt();
            }while(num < 0 || num > 5);        
        }    
        public static void funcionSwitch() throws IOException{
 
            funcionMenu();
 
            do{
                switch(num){
                    case 1: 
 
                       introducirProds();
                       funcionMenu();
 
                    break;                         
                    case 2:
 
                        visualizarProds();
                        funcionMenu();
 
                    break;  
                    case 3:
                        guardaProds();
                        funcionMenu();
 
                    break;
                    case 4:
 
                        leeProds();
                        funcionMenu();
 
                    break;                    
                } 
            }while(num != 5);
        } 
 
 
        public static void introducirProds(){   
 
            int cierraWhile = 0;
                while(nProd<listProd.length && cierraWhile != 1){
                    Producto P = new Producto();
 
                    System.out.println("Introduzca las variables del nuevo producto."); 
                    System.out.println("Código:");      P.setCodigo(sc.nextInt()); 
                    System.out.println("Nombre:");      P.setDescripcion(sc.next()); 
                    System.out.println("Peso:");        P.setPeso(sc.nextFloat()); 
 
                    System.out.println("¿Quiere dejar de introducir productos? teclee: 1 = si ,0 = no.");
                    cierraWhile = sc.nextInt();
 
                    listProd[nProd]= P ;   
                    nProd++;
 
                    if(nProd==listProd.length){
                        System.out.println("Almacenamiento lleno.");}
                }
        }    //Case 1
        public static void visualizarProds(){
            System.out.println("Productos introducidos en esta sesión: ");
                for(int i=0;i<nProd;i++)
                    System.out.println("Producto "+ listProd[i].getDescripcion() +"; con código: " + listProd[i].getCodigo()+"; y peso: "+ listProd[i].getPeso()+" .");
        }   //Case 2
        public static void guardaProds() throws IOException{
            System.out.println("Guardando los productos en: Productos.txt");
 
            File nombreFichero = new File("Productos.txt");
            FileWriter fw = new FileWriter(nombreFichero,true);       
            BufferedWriter bw = new BufferedWriter(fw);        
            PrintWriter pw = new PrintWriter(bw);
 
            listProd[nProd] = p;      //Antes no tenia esto y solo escribia el primer producto, con esto escribe: 0 , "desconocido" y 0.0.
 
                for (int nProd = 0; nProd < listProd.length; nProd++) {
                    pw.println(p.getCodigo());
                    pw.println(p.getDescripcion());                                                      
                    pw.println(p.getPeso());
 
                        pw.close();
                }
        }            //Case 3
        public static void leeProds(){
            System.out.println("Estoy dentro del case 4");
 
        }                                 //Case 4
 
}




LA CLASE PRODUCTO:

Public class Producto {
    private int codigo;
    private String descripcion;
    private float peso;
 
 
    public Producto(int codigo, String descripcion, float peso) {
        this.codigo = codigo;
        this.descripcion = descripcion;
        this.peso = peso;
    }    
    public Producto(){
        this.codigo=0;
        this.descripcion="Desconocido";
        this.peso=0;
    }
 
    public int getCodigo() {
        return codigo;
    }
    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }
 
    public String getDescripcion() {
        return descripcion;
    }
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }
 
    public float getPeso() {
        return peso;
    }
    public void setPeso(float peso) {
        this.peso = peso;
    }
 
}


 